package com.enzoism.springboot.fastjson.a05innerCreate.pack1;

/**
 * 在【方法内部】创建【内部类】
 * 1）因为InterfaceAImpl 实现在【外部类】的内部，只有一个方法直接创建
 * 2）所以除了直接调用这个方法，就没有办法创建这个对象了，这样就避免被InterfaceA的实现类被其他类调用
 */
public class DiveClass {
    public InterfaceA innerInterfaceA(String name){
        class InterfaceAImpl implements InterfaceA{
            private String label;
            public InterfaceAImpl(String label) {
                this.label = label;
            }
            public String getLabel() {
                return label;
            }
            @Override
            public void printA() {
                System.out.println("-------->"+this.getLabel());
            }
        }
        return new InterfaceAImpl(name);
    }

    public static void main(String[] args) {
        DiveClass diveClass = new DiveClass();
        InterfaceA interfaceA = diveClass.innerInterfaceA("xiaoming");
        interfaceA.printA();
    }


}
